//ajax请求统一入口
//xmlhttp：传入的XMLHttpRequest对象
//formdata：发送的表单数据
//url：请求的URL
//listener：请求成功时执行的函数
//reviver：json处理函数
function Request(xmlhttp,formdata,url,listener,reviver){
	var xmlhttp=new XMLHttpRequest();
	xmlhttp.open("POST",url);
	xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");  
	xmlhttp.send("params="+formdata);
	xmlhttp.onreadystatechange=function(){
		if(xmlhttp.readyState==4&&xmlhttp.status==200){
			resultObject=JSONController(xmlhttp.responseText,reviver);
			listener(resultObject);
		}else if(xmlhttp.status==900){
			
			location.href = "/Powerful/pages/person/login.jsp";
		}else{
//			请求未完成时的一些处理
			console.log("请求呢");
		}
	}
}

//附带文件上传时使用该方法
function MultiRequest(method,formdata,url,listener,reviver){
	var xmlhttp=new XMLHttpRequest();
	xmlhttp.open(method,url);
	xmlhttp.send(formdata);
	xmlhttp.onreadystatechange=function(){
		if(xmlhttp.readyState==4&&xmlhttp.status==200){
			var resultObject=JSONController(xmlhttp.responseText,reviver);
			listener(resultObject);
		}else{
//		请求未完成时的一些处理
			console.log("请求呢");
		}
	}
	return xmlhttp;
}
//附带文件上传时使用该方法
function ImageRequest(JQFile,url,uploadStart,uploadComplete,uploadFailed,progressFunction){
	 var formdata = new FormData();
	 formdata.append("imgInfo",JQFile[0].files[0]);
	 var xmlhttp=new XMLHttpRequest();
	 xmlhttp.open("post",url,true);
	 
//	 xmlhttp.upload.addEventListener("progress", function(evt){
//		 console.log("..........");
//		 progressFunction(fileID,evt);
//	 }, false);
	 
	 //请求完成
	 xmlhttp.onload = function(){
		 uploadComplete(JQFile,JSON.parse(xmlhttp.responseText));
	 }; 
	//请求失败
	 xmlhttp.onerror =  function(){
		 uploadFailed(JQFile);
	 };
	 //加载中
	 xmlhttp.upload.onprogress=function(evt){
		 progressFunction(JQFile,evt);
	 }
	 //开始
	 xmlhttp.upload.onloadstart = function(){//上传开始执行方法
		 uploadStart(JQFile);
     };
     
     
     
     
	 xmlhttp.send(formdata);
	
	return xmlhttp;
}
//以类名方式获取参数
//conatiner包含元素参数的容器jquery对象，pName参数名数组
function cjParam(container,pName,another){
	var con=container;
	var array=pName;
	var jsonObj={};
	for(var i=0;i<array.length;i++){
		var elem=con.find("."+array[i]);
		if(elem.length==0)
			jsonObj[array[i]]="";
		else
			jsonObj[array[i]]=elem.val();
	}
	if(another!=undefined){
		var set=Object.keys(another);
		for(var i=0;i<set.length;i++){
			jsonObj[set[i]]=another[set[i]];
		}
		
	}
	return JSON.stringify(jsonObj);
}

//构建json 字符串参数
function formBuilder(params) {
	var formdata="";
	//对请求的参数进行拼接
	if(params.length!=1)
		for(var i=0;i<params.length;i++){
			if(formdata=="")
				formdata="\""+params[i]+"\""+":"+"\""+getElem(params[i]).value.trim()+"\"";
			else if(i!=params.length-1)
				formdata=formdata+","+"\""+params[i]+"\""+":"+"\""+getElem(params[i]).value.trim()+"\"";
			else
				formdata="{"+formdata+","+"\""+params[i]+"\""+":"+"\""+getElem(params[i]).value.trim()+"\""+"}";
		}
	if(params.length==1){
		formdata="{"+"\""+params[0]+"\""+":"+"\""+getElem(params[0]).value.trim()+"\""+"}";
	}
	return formdata;
}

//JSON处理器
function JSONController(json,reviver){
	var result=JSON.parse(json,reviver);
	return result;
}

//formdata 构造器(非文件上传form)------由于后台取值为NULL，暂时没有好的方法解决，暂时不使用
//function formBuilder(params) {
//	var formdata=new FormData();
//	for(var i=0;i<params.length;i++){
//		formdata.append(params[i],getElem(params[i]).value.trim());
//	}
//	return formdata;
//}

//使用FormData对象发送请求的情况
//function formBuilder(params) {
//	var formdata="";
//	//对请求的参数进行拼接
//	for(var i=0;i<params.length;i++){
//		if(formdata=="")
//			formdata=params[i]+"="+getElem(params[i]).value.trim();
//		else
//			formdata=formdata+"&"+params[i]+"="+getElem(params[i]).value.trim();
//	}
//	return formdata;
//}
